package com.sdry.product.sorting.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sdry.basic.entity.Container;
import com.sdry.basic.entity.ContainerStare;
import com.sdry.product.sorting.entity.SortFrame;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author chenBin
 */
public interface SortingStockMapper extends BaseMapper<SortFrame> {
    /**
     * 查询容器信息
     * @param containerId ID
     * @return Container
     */
    @Select("SELECT cid,cnumber FROM sort_frame sf , td_container con  where sf.container_id = cid and cid = #{containerId} and  sf.status = 0 GROUP BY cid,cnumber")
    Container queryContainer(Long containerId);

    /**
     * 库存详细
     * @param containerId 容器ID
     * @return List<Material>
     */
    List<SortFrame> querySortingStockDetailPage(SortFrame containerId);

    /**
     * 库存详细总数
     * @param containerId 容器ID
     * @return Long
     */
    Long querySortingStockDetailTotal(SortFrame containerId);

    /**
     * 上架或库存分页
     * @param sortFrame 库存实体
     * @return List<SortFrame>
     */
    List<SortFrame> querySortingStockPage(SortFrame sortFrame);

    /**
     * 上架或库存总数
     * @param sortFrame 库存实体
     * @return List<SortFrame>
     */
    Long querySortingStockTotal(SortFrame sortFrame);

    /**
     * 装车发货
     * @return
     */
    List<Container> querySortingFrameNumber();

    /**
     * 出库
     * @param sortFrame
     * @return
     */
    List<SortFrame> querySortingStockOutPage(SortFrame sortFrame);

    /**
     * 总数
     * @param sortFrame
     * @return
     */
    Long querySortingStockOutTotal(SortFrame sortFrame);

    /**
     * 查询库存数量
     * @param psId id
     * @param maId 物料ID
     * @param status
     * @return
     */
    ContainerStare queryContainerStare(@Param("psId") String psId, @Param("maId") Long maId, @Param("status") String status);
}
